namespace ext.util
{
	using System;
	using System.Runtime.CompilerServices;
	using System.Html;
	using System.Collections;
	
	
	/// <summary>
	/// Modified version of Douglas Crockford&quot;s json.js that doesn&quot;t
	/// mess with the Object prototype
	/// http://www.json.org/js.html
	/// </summary>
	/// <definedin>src\ext-core\src\util\JSON.js</definedin>
	[ScriptName("JSON")]
	[ScriptNamespace("Ext.util")]
	[Imported()]
	public sealed partial class JSON
	{
		
		#region Constructors
		/// <summary>Constructor</summary>
		private JSON()
		{
		}
		#endregion
		
		#region Methods
		/// <summary>
		/// Encodes a Date. This returns the actual string which is inserted into the JSON string as the literal expression.
		/// The returned value includes enclosing double quotation marks.  The default return format is &quot;yyyy-mm-ddThh:mm:ss&quot;.  To override this:  
		/// Ext.util.JSON.encodeDate = function(d) {
		/// return d.format(&apos;&quot;Y-m-d&quot;&apos;);
		/// };
		/// </summary>
		/// <htmlSummary>
		/// &lt;p&gt;Encodes a Date. This returns the actual string which is inserted into the JSON string as the literal expression.
		/// &lt;b&gt;The returned value includes enclosing double quotation marks.&lt;/b&gt;&lt;/p&gt;
		/// &lt;p&gt;The default return format is &quot;yyyy-mm-ddThh:mm:ss&quot;.&lt;/p&gt;
		/// &lt;p&gt;To override this:&lt;/p&gt;&lt;pre&gt;&lt;code&gt;
		/// Ext.util.JSON.encodeDate = function(d) {
		/// return d.format(&apos;&quot;Y-m-d&quot;&apos;);
		/// };
		/// &lt;/code&gt;&lt;/pre&gt;
		/// </htmlSummary>
		/// <definedin>src\ext-core\src\util\JSON.js</definedin>
		/// <param name="d">The Date to encode</param>
		/// <returns>The string literal to use in a JSON string.</returns>
		[ScriptName("encodeDate")]
		public static string EncodeDate(System.DateTime d)
		{
			throw new System.Exception("Imported - not implemented");
		}
		
		/// <summary>Encodes an Object, Array or other value</summary>
		/// <definedin>src\ext-core\src\util\JSON.js</definedin>
		/// <param name="o">The variable to encode</param>
		/// <returns>The JSON string</returns>
		[ScriptName("encode")]
		public static string Encode(object o)
		{
			throw new System.Exception("Imported - not implemented");
		}
		
		/// <summary>Decodes (parses) a JSON string to an object. If the JSON is invalid, this function throws a SyntaxError unless the safe option is set.</summary>
		/// <definedin>src\ext-core\src\util\JSON.js</definedin>
		/// <param name="json">The JSON string</param>
		/// <returns>The resulting object</returns>
		[ScriptName("decode")]
		public static object Decode(string json)
		{
			throw new System.Exception("Imported - not implemented");
		}
		#endregion
	}
}
